// knowledge/detail.js
// 获取app实例
const app = getApp();

Page({
  data: {
    totalHeaderHeightall: "",
    knowledgeDetail: {
      id: 0,
      title: "",
      description: "",
      file_path: "",
      file_type: "",
      file_size: 0
    }
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {



    this.setData({
      totalHeaderHeightall: app.globalData?.totalHeaderHeight
    });

    // 获取传递的知识点ID
    const knowledgeId = options.id;
    console.log('接收到的知识点ID:', knowledgeId);

    if (knowledgeId) {
      // 加载知识点详情
      this.loadKnowledgeDetail(knowledgeId);
    } else {
      wx.showToast({
        title: '知识点ID无效',
        icon: 'none'
      });
      // 返回上一页
      setTimeout(() => {
        wx.navigateBack();
      }, 1500);
    }
  },

  /**
   * 加载知识点详情
   */
  loadKnowledgeDetail: function (knowledgeId) {
    // 显示加载提示
    wx.showLoading({
      title: '加载知识点详情中...',
      mask: true
    });

    // 调用API获取知识点详情
    app.api.getKnowledgePointDetail({ id: knowledgeId }).then(res => {
      console.log('获取知识点详情响应:', res);

      // 关闭加载提示
      wx.hideLoading();

      // 检查响应状态
      if (res && res.code === 200 && res.data) {
        // 格式化文件大小显示
        const knowledgeData = res.data;
        if (knowledgeData.file_size) {
          knowledgeData.formatted_file_size = (knowledgeData.file_size / 1024).toFixed(1) + 'KB';
        } else {
          knowledgeData.formatted_file_size = '未知';
        }

        // 为文件路径拼接完整的URL
        if (knowledgeData.file_path) {
          // 如果文件路径不是以http开头，则拼接baseUrl
          if (!knowledgeData.file_path.startsWith('http')) {
            knowledgeData.full_file_url = app.globalData.baseUrl + knowledgeData.file_path;
          } else {
            knowledgeData.full_file_url = knowledgeData.file_path;
          }
        }

        // 设置知识点详情数据
        this.setData({
          knowledgeDetail: knowledgeData
        });
        console.log(this.data.knowledgeDetail)
        if (this.data.knowledgeDetail.file_type == "word") {
          wx.downloadFile({
            url: this.data.knowledgeDetail.full_file_url,
            success: (res) => {
              wx.openDocument({
                filePath: res.tempFilePath,
                fileType: 'docx'
              })
            }
          })
        }

      } else {
        // 响应异常或没有数据
        wx.showToast({
          title: res?.message || '获取知识点详情失败',
          icon: 'none'
        });

        // 返回上一页
        setTimeout(() => {
          wx.navigateBack();
        }, 1500);
      }
    }).catch(err => {
      // 关闭加载提示
      wx.hideLoading();

      console.error('获取知识点详情API调用异常:', err);

      // 显示错误提示
      wx.showToast({
        title: '网络异常，请检查网络连接后重试',
        icon: 'none'
      });

      // 返回上一页
      setTimeout(() => {
        wx.navigateBack();
      }, 1500);
    });
  },

  /**
   * 返回按钮点击事件
   */
  onBackTap: function () {
    wx.navigateBack();
  },

  /**
   * 收藏按钮点击事件
   */
  onCollectTap: function () {
    const knowledge = this.data.knowledgeDetail;
    console.log('收藏知识点:', knowledge);

    // 检查用户是否登录
    const token = wx.getStorageSync('userToken');
    if (!token) {
      wx.showModal({
        title: '提示',
        content: '请先登录后再进行收藏操作',
        confirmText: '去登录',
        cancelText: '取消',
        success: (res) => {
          if (res.confirm) {
            // 跳转到登录页面
            wx.navigateTo({
              url: '/pages/login/login'
            });
          }
        }
      });
      return;
    }

    // 显示加载提示
    wx.showLoading({
      title: '处理中...',
      mask: true
    });

    // 切换收藏状态
    const newStatus = !knowledge.is_favorited;

    app.api.toggleFavorite({
      knowledgePointId: knowledge.id,
      status: newStatus ? 1 : 0
    }).then(res => {
      // 关闭加载提示
      wx.hideLoading();

      if (res && res.code === 200 && res.data) {
        // 更新本地数据
        const updatedKnowledge = {
          ...knowledge,
          is_favorited: res.data.is_favorited,
          favorite_count: res.data.favorite_count
        };

        this.setData({
          knowledgeDetail: updatedKnowledge
        });

        // 显示成功提示
        wx.showToast({
          title: newStatus ? '收藏成功' : '取消收藏成功',
          icon: 'success',
          duration: 1500
        });

        console.log('收藏状态更新成功:', res.data);
      } else {
        wx.showToast({
          title: res?.message || '操作失败',
          icon: 'none'
        });
      }
    }).catch(err => {
      // 关闭加载提示
      wx.hideLoading();

      console.error('收藏操作失败:', err);

      wx.showToast({
        title: err?.message || '网络异常，请重试',
        icon: 'none'
      });
    });
  },

  /**
   * 文件下载按钮点击事件
   */
  onDownloadFile: function () {

    wx.downloadFile({
      url: this.data.knowledgeDetail.full_file_url,
      success: (res) => {
        wx.openDocument({
          filePath: res.tempFilePath,
          fileType: 'docx'
        })
      }
    })
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    // 重新加载知识点详情
    if (this.data.knowledgeDetail.id) {
      this.loadKnowledgeDetail(this.data.knowledgeDetail.id);
    }

    // 停止下拉刷新
    wx.stopPullDownRefresh();
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    return {
      title: this.data.knowledgeDetail.title,
      path: `/pages/knowledge/detail?id=${this.data.knowledgeDetail.id}`
    };
  }
});